home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 September / PCWorld_2008-09_cd.bin / v cisle / sadanastroju / lightning-0.8-tb-win.xpi / chrome / calendar.jar / content / calendar / calendar-invitations-dialog.js < prev    next >
Text File  |  2007-08-02  |  5KB  |  127 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3.  *
  4.  * The contents of this file are subject to the Mozilla Public License Version
  5.  * 1.1 (the "License"); you may not use this file except in compliance with
  6.  * the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/MPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is Sun Microsystems code.
  15.  *
  16.  * The Initial Developer of the Original Code is Sun Microsystems.
  17.  * Portions created by the Initial Developer are Copyright (C) 2006
  18.  * the Initial Developer. All Rights Reserved.
  19.  *
  20.  * Contributor(s):
  21.  *   Thomas Benisch <thomas.benisch@sun.com>
  22.  *
  23.  * Alternatively, the contents of this file may be used under the terms of
  24.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  25.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  26.  * in which case the provisions of the GPL or the LGPL are applicable instead
  27.  * of those above. If you wish to allow use of your version of this file only
  28.  * under the terms of either the GPL or the LGPL, and not to allow others to
  29.  * use your version of this file under the terms of the MPL, indicate your
  30.  * decision by deleting the provisions above and replace them with the notice
  31.  * and other provisions required by the GPL or the LGPL. If you do not delete
  32.  * the provisions above, a recipient may use your version of this file under
  33.  * the terms of any one of the MPL, the GPL or the LGPL.
  34.  *
  35.  * ***** END LICENSE BLOCK ***** */
  36.  
  37. function onLoad() {
  38.     var operationListener = {
  39.         onOperationComplete: function oL_onOperationComplete(aCalendar,
  40.                                                              aStatus,
  41.                                                              aOperationType,
  42.                                                              aId,
  43.                                                              aDetail) {
  44.             var updatingBox = document.getElementById("updating-box");
  45.             updatingBox.setAttribute("hidden", "true");
  46.             var richListBox = document.getElementById("invitations-listbox");
  47.             if (richListBox.getRowCount() > 0) {
  48.                 richListBox.selectedIndex = 0;
  49.             } else {
  50.                 var noInvitationsBox =
  51.                     document.getElementById("noinvitations-box");
  52.                 noInvitationsBox.removeAttribute("hidden");
  53.             }
  54.         },
  55.         onGetResult: function oL_onGetResult(aCalendar,
  56.                                              aStatus,
  57.                                              aItemType,
  58.                                              aDetail,
  59.                                              aCount,
  60.                                              aItems) {
  61.             if (!Components.isSuccessCode(aStatus)) {
  62.                 return;
  63.             }
  64.             document.title = invitationsText + " (" + aCount + ")";
  65.             var updatingBox = document.getElementById("updating-box");
  66.             updatingBox.setAttribute("hidden", "true");
  67.             var richListBox = document.getElementById("invitations-listbox");
  68.             for each (var item in aItems) {
  69.                 richListBox.addCalendarItem(item);
  70.             }
  71.         }
  72.     };
  73.  
  74.     var updatingBox = document.getElementById("updating-box");
  75.     updatingBox.removeAttribute("hidden");
  76.  
  77.     var args = window.arguments[0];
  78.     args.invitationsManager.getInvitations(
  79.         false,
  80.         operationListener,
  81.         args.onLoadOperationListener);
  82.  
  83.     opener.setCursor("auto");
  84. }
  85.  
  86. function onUnload() {
  87.     var args = window.arguments[0];
  88.     args.requestManager.cancelPendingRequests();
  89. }
  90.  
  91. function onAccept() {
  92.     var args = window.arguments[0];
  93.     fillJobQueue(args.queue);
  94.     args.invitationsManager.processJobQueue(args.queue, args.finishedCallBack);
  95.     return true;
  96. }
  97.  
  98. function onCancel() {
  99.     var args = window.arguments[0];
  100.     if (args.finishedCallBack) {
  101.         args.finishedCallBack();
  102.     }
  103. }
  104.  
  105. function fillJobQueue(queue) {
  106.     var richListBox = document.getElementById("invitations-listbox");
  107.     var rowCount = richListBox.getRowCount();
  108.     for (var i = 0; i < rowCount; i++) {
  109.         var richListItem = richListBox.getItemAtIndex(i);
  110.         var newStatus = richListItem.participationStatus;
  111.         var oldStatus = richListItem.initialParticipationStatus;
  112.         if (newStatus != oldStatus) {
  113.             var actionString = "modify";
  114.             var oldCalendarItem = richListItem.calendarItem;
  115.             var newCalendarItem = oldCalendarItem.clone();
  116.             richListItem.setCalendarItemParticipationStatus(newCalendarItem,
  117.                 newStatus);
  118.             var job = {
  119.                 action: actionString,
  120.                 oldItem: oldCalendarItem,
  121.                 newItem: newCalendarItem
  122.             };
  123.             queue.push(job);
  124.         }
  125.     }
  126. }
  127.